package com.itlong.cloud.POJO.VO.property;

import com.itlong.cloud.POJO.DTO.BaseDTO;
import com.itlong.cloud.annotation.ItlField;
import com.itlong.cloud.enumerate.PropertyEquipTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.List;


/**
 * <desc>
 *      设备返回数据对象
 * </desc>
 *
 * @createDate 2017/9/28
 */
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class PropertyEquipGetVO extends BaseDTO {



    private Integer deviceType;              //设备类型  1-电梯 2-门禁 3-云对讲

    private Integer smartType;              //云对讲类型  31-门口机 32-围墙机

    private String deviceUnique;            //设备全局唯一序列号(项目编号[8位] + 设备类型[1位] + 设备ID[4位])

    private String sn;

    private String sipAccount;              //sip账号

    private String deviceId;                //设备ID，即设备机号，与设备硬件拨码对应。


    private String deviceName;              //设备名称，一般由客户自定义。


    private String projectId;               //项目编号，由8位数字构成,00000001~99999999.


    private Integer floorNo;                //电梯服务开始层数


    private Integer floorNoMax;             //电梯服务结束层数


    private String deviceMemo;              //设备说明

    private String commonFloor;             //可选公共楼层，由楼层权限标识组成，如1,3,5

    private String createTime;              //创建时间

    private String updateTime;              //修改时间

    private String deviceTypeName;          //设备类型名称

    private String smartTypeName;          //云对讲类型名称

    private Integer status;                  //设备状态

    private String productTypeId;          // 产品型号ID,如"1700003415"，与“产品信号信息表”中的type_pid一致

    private String productTypeName;          // 产品型号名称

    private String qrCode;                 //二维码图标地址

    private Integer dataSource;				//设备数据来源 1- 一卡通  2-物业后台

    private Integer isBluetoothElevator;    //是否配置蓝牙电梯

    private Integer elevatorType;           //电梯类型 11-蓝牙电梯 12-云电梯 13外呼控制器

    private Integer isFaceRecognition;      //是否支持人脸识别 0代表否 1代表是

    private Integer isCollectFees;          //是否收费 0代表否 1代表是

    private String standbyImageUrl;         //云对讲设备待机界面URL地址

    private String screenType;              //云对讲屏幕类型

    private Integer isScreen;               //是否有屏设备 0代表无屏 1代表有屏

    private Integer isStandbyPic;           //是否支持待机图片下载 0代表不支持 1代表支持

    private Integer entranceType;          //门禁类别 1楼栋门禁2单元门禁 3普通门禁

    private String supportFunction;          //支持读头 1数字读头 2身份证 3二维码 4手机蓝牙 5刷卡 6人脸识别 多个以逗号隔开

    private Integer isOnLine;               //设备在线状态 0离线 1在线

    private Integer entranceCategory;       //门禁类型 11-蓝牙门禁 12-云门禁

    private Integer liftDoorType;           //正背门 0背门 1-正门

    private String batchNumber;             //批次号

    private Integer equipMode;              // 设备模式，1普通，2收费

    private String elevatorDeviceUnique;        //绑定电梯设备序列号

    private Integer elevatorFloor;           //电梯naturalfloor

    private Integer floorNums;

    private String elevatorDeviceUniques;

    private Integer blueToothCallStandard;  //进场呼梯标准开关：1开启 0关闭

    private String deviceUniqueController;      //群控器编号,当电梯未绑定群控器时，这里展示电梯机号

    private List<PropertyDeviceUserGroupVO> deviceGroupList;  //同一群控器下的电梯组

    private String roleName;        //角色组列表，多个逗号隔开

    private List<PropertyEquipAddressVO> equipAddress;

    private List<BluetoothCallVO> callBindInfo;     //绑定电梯信息

    public String getDeviceTypeName() {
        return PropertyEquipTypeEnum.getDescription(deviceType);
    }

    public String getSmartTypeName() {
        if (smartType == null) {
            return null;
        }
        String smartTypeName = PropertyEquipTypeEnum.getDescription(smartType);
        return smartTypeName.substring(4, 7);
    }
}